﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Intrack
{
    public partial class cliente : System.Web.UI.Page
    {
        BLLCliente bc = new BLLCliente();
        tbCliente c = new tbCliente();

        private void Inicio()
        {
            mvClientes.SetActiveView(vwListaClientes);
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Inicio();
            }
        }

        private void LimparCampos()
        {
            hdIdCliente.Value = string.Empty;
            txtNome.Text = string.Empty;
            txtEndereco.Text = string.Empty;
            txtLati.Text = string.Empty;
            txtLong.Text = string.Empty;
            lblMsgAlerta.Text = string.Empty;
        }


        protected void btnGravar_Click(object sender, EventArgs e)
        {
            try
            {
                Validar();

                if (!string.IsNullOrEmpty(hdIdCliente.Value.Trim()))
                    c = bc.LerPorId(int.Parse(hdIdCliente.Value));

                c.Nome = txtNome.Text;
                c.Endereco = txtEndereco.Text;
                c.Latit = (string.IsNullOrWhiteSpace(txtLati.Text)) ? "" : txtLati.Text;
                c.Longi = (string.IsNullOrWhiteSpace(txtLong.Text)) ? "" : txtLong.Text; 

                bc.Salvar(c);
                gvListaClientes.DataBind();

                if (string.IsNullOrEmpty(hdIdCliente.Value.Trim()))
                {
                   LimparCampos(); 
                }
                    
                lblMsgAlerta.Text = (!string.IsNullOrEmpty(hdIdCliente.Value.Trim())) ? "Registro atualizado com sucesso!" : "Registro inserido com sucesso!";
                
            }
            catch (Exception ex)
            {
                lblMsgAlerta.Text = ex.Message;
            }
            
            //db.AddTotbCliente(c);
            //db.SaveChanges();
        }

        private void Validar()
        {
            if (string.IsNullOrWhiteSpace(txtNome.Text.Trim())) throw new Exception("Nome em branco.");
            if (string.IsNullOrWhiteSpace(txtEndereco.Text.Trim())) throw new Exception("Endereço não preenchido.");
            
        }

        protected void gvListaClientes_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            hdIdCliente.Value = e.CommandArgument.ToString();
            if (e.CommandName.ToLower() == "select")
            {
               
                c = bc.LerPorId(int.Parse(e.CommandArgument.ToString()));

                txtNome.Text = c.Nome;
                txtEndereco.Text = c.Endereco ;
                txtLati.Text = c.Latit;
                txtLong.Text = c.Longi; 

                mvClientes.SetActiveView(vwCadastroCliente);
            }

            if (e.CommandName.ToLower() == "excluir")
            {
                c = bc.LerPorId(int.Parse(e.CommandArgument.ToString()));
                bc.Excluir(c);
                gvListaClientes.SelectedIndex = -1;
                gvListaClientes.DataBind();
            }
        }

        protected void lbVoltar_Click(object sender, EventArgs e)
        {
            LimparCampos();
            mvClientes.SetActiveView(vwListaClientes);
        }

        protected void lkNovoCliente_Click(object sender, EventArgs e)
        {
            
            LimparCampos(); 
            mvClientes.SetActiveView(vwCadastroCliente);
        }
    }
}